/**
 * @file delay.h
 * @brief 提供基于DWT的延时函数接口
 * @author 废话文学创始人
 * @version 1.0
 * @date 2024-07-14
 */

#ifndef __DELAY_H_
#define __DELAY_H_

#include "main.h"

/**
 * @brief 初始化DWT计数器，用于高精度延时
 */
void HAL_DWT_init(void);

/**
 * @brief 微秒级延时
 * @param nus 延时时间（微秒）
 */
void HAL_DWT_Delay_us(uint32_t nus);

/**
 * @brief 毫秒级延时
 * @param nms 延时时间（毫秒）
 */
void HAL_DWT_Delay_ms(uint32_t nms);

/**
 * @brief 纳秒级延时（精度受限于系统主频）
 * @param nns 延时时间（纳秒）
 */
void delay_ns(uint32_t nns);

/**
 * @brief 毫秒级延时
 * @param nms 延时时间（毫秒）
 */
void delay_ms(uint32_t nms);

#endif /* __DELAY_H_ */
